/**
 * 
 * @param {Object} [oldValue] old value
 * @param {Object} [newValue] new value
 * @param {JSEvent} [event] the event that triggered the action
 * 
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"8FE9771C-1203-427C-86C1-551934F80C0B"}
 */
function elige_producto(oldValue, newValue, event)
{
	if (forms.presupuestos.cliente_id == null)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar cliente','OK')
		forms.presupuestos.elements.fld_cliente_id.requestFocus()
		return true;
	}	
	precio_unitario = presup_detalle_to_productos.productos_to_monedas.cotizacion * presup_detalle_to_productos.precio_unitario
	descuento_porc	= presup_detalle_to_productos.descuento; 
	recalcula_precio()
	elements.cantidad.requestFocus();
	
	return true
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"286F9BBC-6627-4B59-9C2C-1B95024A8C6C"}
 */
function recalcula_total_renglon() 
{
	var $iva_coef = calculaCoeficienteIva()
	total_renglon = (precio_unitario * cantidad - descuento_importe) * $iva_coef
	forms.presupuestos.totalizar()
	return true
}

/**
 * @properties={typeid:24,uuid:"66D92A9A-213B-45F2-A060-91E827233975"}
 */
function calculaCoeficienteIva() {
	var $multi = 1
	if (forms.presupuestos.presup_cabecera_to_clientes.clientes_to_relacion_iva_letra.rel_iva_calcula == 1)
	{ //  DISCRIMINA
		iva_porc = presup_detalle_to_productos.productos_to_tasa_iva.tasa_iva_porc
		if (forms.presupuestos.presup_cabecera_to_clientes.clientes_to_relacion_iva_letra.rel_iva_discrimina == 1)
		{
			$multi = 1;  // es A
		}
		else  // es B 
			$multi = 1 + iva_porc / 100
	}
	else
	{ //NO CALCULA IVA
		iva_porc 	= 0
		$multi 		= 1;
	}
	return $multi
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"F138F020-9C01-426F-99B4-C5A40AB00C0C"}
 */
function recalcula_precio() 
{  // rever el calculo del renglon
	descuento_importe	= precio_unitario * cantidad * (descuento_porc / 100);
	recalcula_total_renglon();
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"C99AC8B1-E3EF-4983-8170-66903BB094A9"}
 */
function onDataChange_cantidad(oldValue, newValue, event)
{
	recalcula_precio()
	if (precio_unitario)
	{
		forms.presupuestos.presup_cabecera_to_presup_detalle.newRecord(false)
		elements.fld_producto_id.requestFocus()
	}
	else
		elements.fld_precio_unitario.requestFocus()
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"5DA8EAEF-8AFC-4339-ABE9-6C468822121D"}
 */
function onDataChange_precio(oldValue, newValue, event) 
{
	descuento_importe	= precio_unitario * (descuento_porc / 100);
	recalcula_total_renglon();
	if (!oldValue)
	{
		forms.presupuestos.presup_cabecera_to_presup_detalle.newRecord(false)
		elements.fld_producto_id.requestFocus()
	}
	return true;
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"038D40AA-A187-4C96-A94C-869F4FDADB6A"}
 */
function onDataChange_descuento(oldValue, newValue, event) 
{	
	//  DESCUENTO TOPE PERMITIDO
	if (globals.descuento_permitido(descuento_porc) == false)	
	{
		descuento_porc = oldValue;
		return true;  
	}
	recalcula_precio()
	return true;
}
